package model.bo;

import static org.junit.Assert.*;

import model.entidade.Emprestimo;

import org.junit.Before;
import org.junit.Test;

public class EmprestimoBOTestCFCalculo {

	EmprestimoBO emprestimoBO;
	
	  @Before
      public void setUp() {
		  
		  
      }
	
	@Test
	public void calculaCFEmprestimoTestQuandoTaxaECincoPctEPrestacaoEUm() {
		
		//ARRANGE
		
		double taxa= 0.05;
		int numPrestacao= 1;
		Emprestimo emprestimo = new Emprestimo("001", null, numPrestacao);	
		double cfEmprestimoEsperado = calculaCFEmprestimoEsperado(numPrestacao,taxa);
		
		
		//ACT
		
		double cfEmprestimo = emprestimoBO.getInstance().calculaCFEmprestimo(emprestimo);
		
		//ASSERT
		
		assertEquals(cfEmprestimoEsperado, cfEmprestimo,0);
		
		
	}
	
	

	public static double calculaCFEmprestimoEsperado(int numPrestacao, double taxa) {
		
		double dividendoDoDividendo = Math.pow((1+taxa),numPrestacao);		
		
		double dividendo = 1 - (1 / dividendoDoDividendo);
		
		double cf = taxa / dividendo;
		
		return cf;
	}

}
